home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / applications / wp / fwmacros1.lha / UserMacros / english / BottomAlign.fw next >
Encoding:
Text File  |  1994-10-04  |  1.8 KB  |  76 lines

  1. /*
  2. $AUTHOR:  Fernando Nunes e Manuel Lemos (UpperDesign@zeus.ci.ua.pt)
  3. $VER: BottomAlign 1.01 (1.10.94)
  4.       Description:  ARexx macro for FinalWriter to vertically align all
  5.                     selected graphics by the bottom coordinate of the
  6.                     bottommost object
  7. */
  8.  
  9. options results
  10.  
  11. /* obter uma lista dos objectos seleccionados */
  12. selecionados = 0
  13. FirstObject SELECTED
  14. do until result =0
  15.   selecionados = selecionados + 1
  16.   objectid.selecionados = result
  17.   NextObject objectid.selecionados SELECTED
  18. end
  19.  
  20. if selecionados > 1 then
  21. do
  22.  
  23.   /* determinar a coordenada do objecto mais acima */
  24.   do objecto = 1 to selecionados
  25.     GetObjectCoords objectid.objecto
  26.     coords = RESULT
  27.     PARSE VAR coords pagina esquerda cima direita baixo
  28.     GetObjectType objectid.objecto
  29.     tipo = result
  30.  
  31.     /* linhas */
  32.     if tipo = OBJECTO_LINHA then
  33.       do
  34.         if cima > baixo then
  35.           baixo = cima
  36.       end
  37.     else
  38.       baixo = cima + baixo
  39.     if objecto = 1 | baixo > mais_abaixo then
  40.       mais_abaixo = baixo
  41.   end
  42.  
  43.   /* mover os objectos para cima */
  44.   do objecto = 1 to selecionados
  45.     GetObjectCoords objectid.objecto
  46.     coords = RESULT
  47.     PARSE VAR coords pagina esquerda cima direita baixo
  48.     GetObjectType objectid.objecto
  49.     tipo = result
  50.  
  51.     /* linhas */
  52.     if tipo = OBJECTO_LINHA then
  53.       do
  54.         if cima < baixo then
  55.           do
  56.             cima = mais_abaixo - baixo + cima
  57.             baixo = mais_abaixo
  58.           end
  59.         else
  60.           do
  61.             baixo = mais_abaixo - cima + baixo
  62.             cima = mais_abaixo
  63.           end
  64.       end
  65.     else
  66.       cima = mais_abaixo - baixo
  67.     SetObjectCoords objectid.objecto pagina esquerda cima direita baixo
  68.   end
  69.  
  70.   /* voltar a reselecionar todos os objectos selecionados antes */
  71.   do objecto = 1 to selecionados
  72.     SelectObject objectid.objecto MULTIPLE
  73.   end
  74.   redraw
  75. end
  76.